//============================================================================================
/**
 * @file	zkn2_tool.c
 * @brief	金銀図鑑画面 フィールド・戦闘共通処理
 * @author	Hiroyuki Nakamura
 * @date	08.10.06
 */
//============================================================================================
#include "common.h"

#include "system/gra_tool.h"
#include "system/arc_util.h"
#include "poketool/pokefoot.h"

#include "zkn2_tool.h"
#include "zukan_gra.naix"


//============================================================================================
//	定数定義
//============================================================================================

// タイプアイコンのキャラアーカイブＩＤ
static const u32 TypeIconCgxTbl[] = {
	NARC_zukan_gra_type_icon00_lz_NCGR,		// ノーマル
	NARC_zukan_gra_type_icon06_lz_NCGR,		// かくとう
	NARC_zukan_gra_type_icon14_lz_NCGR,		// ひこう
	NARC_zukan_gra_type_icon10_lz_NCGR,		// どく
	NARC_zukan_gra_type_icon08_lz_NCGR,		// じめん
	NARC_zukan_gra_type_icon05_lz_NCGR,		// いわ
	NARC_zukan_gra_type_icon11_lz_NCGR,		// むし
	NARC_zukan_gra_type_icon07_lz_NCGR,		// ゴースト
	NARC_zukan_gra_type_icon09_lz_NCGR,		// はがね
	NARC_zukan_gra_type_icon00_lz_NCGR,		// ？？？（ダミー）
	NARC_zukan_gra_type_icon01_lz_NCGR,		// ほのお
	NARC_zukan_gra_type_icon03_lz_NCGR,		// みず
	NARC_zukan_gra_type_icon02_lz_NCGR,		// くさ
	NARC_zukan_gra_type_icon04_lz_NCGR,		// でんき
	NARC_zukan_gra_type_icon15_lz_NCGR,		// エスパー
	NARC_zukan_gra_type_icon13_lz_NCGR,		// こおり
	NARC_zukan_gra_type_icon16_lz_NCGR,		// ドラゴン
	NARC_zukan_gra_type_icon12_lz_NCGR,		// あく
};

// タイプアイコンのパレットテーブル
static const u8 TypeIconPal[] = { 0, 2, 0, 3, 1, 1, 3, 2, 0, 0, 2, 2, 1, 1, 1, 0, 2, 3 };



//--------------------------------------------------------------------------------------------
/**
 * タイプアイコンのキャラアーカイブＩＤ取得
 *
 * @param	type	タイプ
 *
 * @return	アークＩＤ
 */
//--------------------------------------------------------------------------------------------
u32 ZKN2TOOL_TypeIconCharArcIDGet( u32 type )
{
	return TypeIconCgxTbl[type];
}

//--------------------------------------------------------------------------------------------
/**
 * タイプアイコンのパレット番号取得
 *
 * @param	type	タイプ
 *
 * @return	アークＩＤ
 */
//--------------------------------------------------------------------------------------------
u8 ZKN2TOOL_TypeIconPalNumGet( u32 type )
{
	return TypeIconPal[type];
}

//--------------------------------------------------------------------------------------------
/**
 * 足跡のキャラデータを取得して図鑑用に加工
 *
 * @param	mons	ポケモン番号
 * @param	heapID	ヒープＩＤ
 *
 * @return	作成したキャラデータ
 *
 * @li	解放してください
 */
//--------------------------------------------------------------------------------------------
u8 * ZKN2TOOL_CgxAllocMake( u32 mons, u32 heapID )
{
	NNSG2dCharacterData * chr;
	void * buf;
	u8 * cpy;
	u8 * raw;

	buf = ArcUtil_CharDataGet(
				PokeFootArcFileGet(),
				PokeFootCharDataIdxGet(mons),
				TRUE,
				&chr,
				heapID );

	raw = chr->pRawData;
	cpy = sys_AllocMemoryLo( heapID, ZKN2TOOL_CGX_SIZ );
	memset( cpy, 0, ZKN2TOOL_CGX_SIZ );
	memcpy( &cpy[0], &raw[0x20*4], 0x20*2 );
	memcpy( &cpy[0x20*2], &raw[0], 0x20*2 );

	sys_FreeMemoryEz( buf );

	return cpy;
}
